#ifndef PROTOCOL_WL_SHELL_SURFACE_H
#define PROTOCOL_WL_SHELL_SURFACE_H
//******************************************************************************
//*this code is protected by the GNU affero GPLv3
//*author:Sylvain BERTRAND <sylvain.bertrand AT gmail dot com>
//*                        <digital.ragnarok AT gmail dot com>
//******************************************************************************
#define WL_SHELL_SURFACE_STR "wl_shell_surface"
#define WL_SHELL_SURFACE_STR_DWS 4

#define WL_SHELL_SURFACE_RESIZE_NONE         0
#define WL_SHELL_SURFACE_RESIZE_TOP          1
#define WL_SHELL_SURFACE_RESIZE_BOTTOM       2
#define WL_SHELL_SURFACE_RESIZE_LEFT         4
#define WL_SHELL_SURFACE_RESIZE_TOP_LEFT     5
#define WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT  6
#define WL_SHELL_SURFACE_RESIZE_RIGHT        8
#define WL_SHELL_SURFACE_RESIZE_TOP_RIGHT    9
#define WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT 10

#define WL_SHELL_SURFACE_TRANSIENT_INACTIVE 1

#define WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT 0
#define WL_SHELL_SURFACE_FULLSCREEN_METHOD_SCALE   1
#define WL_SHELL_SURFACE_FULLSCREEN_METHOD_DRIVER  2
#define WL_SHELL_SURFACE_FULLSCREEN_METHOD_FILL    3

//------------------------------------------------------------------------------
//requests
#define WL_SHELL_SURFACE_PONG           0
#define WL_SHELL_SURFACE_MOVE           1
#define WL_SHELL_SURFACE_RESIZE         2
#define WL_SHELL_SURFACE_SET_TOP_LEVEL  3
#define WL_SHELL_SURFACE_SET_TRANSIENT  4
#define WL_SHELL_SURFACE_SET_FULLSCREEN 5
#define WL_SHELL_SURFACE_SET_POPUP      6
#define WL_SHELL_SURFACE_SET_MAXIMISED  7
#define WL_SHELL_SURFACE_SET_TITLE      8
#define WL_SHELL_SURFACE_SET_CLASS      9
//------------------------------------------------------------------------------
//events
#define WL_SHELL_SURFACE_PING       0
#define WL_SHELL_SURFACE_CONFIGURE  1
#define WL_SHELL_SURFACE_POPUP_DONE 2
//------------------------------------------------------------------------------
#endif
